I. Technical Field
The present disclosure generally relates to the field of computerized systems and methods. More particularly, the disclosure relates to computerized systems and methods that aggregate data and use caching techniques.
II. Background Information
In modern data provisioning, data is often gathered from multiple data sources over a network. The process of gathering data from multiple sources is generally referred to as data aggregation. Data is aggregated from the multiple sources in response to a request made by a requestor, which is typically referred to as a client. In order to aggregate the data, a server that receives the request may invoke services to gather the data and/or the services may call other services to gather the data. Furthermore, the services may need to perform computations to process the gathered data in order to provide the requested result to the client. As is evident from this process, efforts are often duplicated when aggregating, computing, and serving the data to the client.
One example of a circumstance in which data is aggregated repeatedly is that of a retailer that operates an electronic store. The retailer may operate in several regions that each have varying business requirements (e.g., different currencies) that dictate the data that should be included in product listings. As further examples, the retailer may need to use different product names, product images, and product descriptions under certain circumstances. Accordingly, a retailer may need different versions of a product listing for different regions (e.g., stores operating in different countries) and/or different entities (e.g., a retailer that also operates a subsidiary company or that provides product listings sold by other entities).
Aggregating the data that is necessary to generate, for example, product detail information may take a significant amount of time. For example, a client that has requested a product listing may not receive the product listing right away due to a delay caused by the aggregation process. Furthermore, some of the services that are called to assist generating the product listing may need to invoke other services. Generating the product detail information may depend upon results provided by the other services, which also may take time and add to the delay experienced by the client that requested the product listing.
Other delays and inefficiencies may occur during the aggregation process. For example, servers typically also need to aggregate data each time a client requests a document. As a result, when a server receives a request for a document that was previously transmitted to a client or a request for a document similar to one previously transmitted to a client, substantially all of the prior aggregation processing may need to be performed anew. Such repetition may require considerable processing capacity to handle requests from a large number of clients, thus introducing further inefficiency.
In view of the foregoing, data aggregation may produce inefficiencies due to the time incurred to gather the data and perform computations as well as the processing capacity needed to aggregate data each time a request is received. Accordingly, there is a need for improved systems and methods that alleviate these problems.